// class BaseResponse {
//   final int count;
//   final String statusText;
//   final int statusCode;
//   final dynamic data;
//
//   BaseResponse(
//       {required this.count,
//       required this.statusText,
//       required this.statusCode,
//       this.data});
//
//   factory BaseResponse.fromJson(dynamic json) {
//     var data;
//     var count = 0;
//     var statusCode = -1;
//     var statusText = "";
//     if (json is Map && json.containsKey("list")) {
//       data = json['list'];
//     } else if (json is Map && json.containsKey("data")) {
//       data = json['data'];
//     }
//
//     if (json is Map && json.containsKey("count")) {
//       count = json['count'];
//     }
//
//     if (json is Map && json.containsKey("message")) {
//       statusText = json['message'];
//     }
//
//     if (json is Map && json.containsKey("statusCode")) {
//       statusCode = json['statusCode'];
//     }
//     return BaseResponse(
//       count: count,
//       statusText: statusText,
//       statusCode: statusCode,
//       data: data,
//     );
//   }
//
//   T? getTypedData<T>(T? Function(Map<String, dynamic> map) creator) {
//     var map = data as Map<String, dynamic>?;
//     if (map == null) {
//       return null;
//     }
//     return creator(map);
//   }
//
//   List<T>? getTypedList<T>(T? Function(Map<String, dynamic> map) creator) {
//     List? list = data as List?;
//     return toList(list, creator);
//   }
//
//   static List<T>? toList<T>(
//     List? mapList,
//     T? Function(Map<String, dynamic> map) creator,
//   ) {
//     if (mapList == null) {
//       return null;
//     }
//     List<T> ret = [];
//     for (var m in mapList) {
//       if (m == null) continue;
//       var t = creator(m);
//       if (t != null) {
//         ret.add(t);
//       }
//     }
//     return ret;
//   }
// }
